Историята на семейството формати MPEG започва през
1988.Тогава е била събрана група от експерти , наречена “ Moving Pictures
Expert Group “ – точно оттука
идва абревиатурата MPEG .На
български това вероятно трябва да се преведе като “Експертна Група по
Кинематография”.Резултат от
работата на тази група се появява през 1993 .
Форматът MPEG-1
За
да оцените истинските постижения на групата искам да ви припомня че през тези
години компютрите не бяха на
сегашното ниво и нямаше разработени носители на големи обеми
информация.Компютър с 250 МВ
харддиск , RAM 4MB , процесор 286 или 386 си беше направо лукс.За пренасяне на
информация се ползваха предимно 5-инчовите дискети , а 3,5-инчовите съвсем скоро
бяха измислени от SONY .Именно в такива условия на групата е била поставена
задачата да намери носител , на който да бъде записан около 1 GB , и този
носител да не бъде скъп за да може да се наложи широко сред потребителите.
Точно
по него време се появяват CD-ROM
дисковете .Въпреки че са били с “внушителен “капацитет , един диск не е побирал един филм но в
крайна сметка какво е пречи филма да се запише на два диска?Разбира се, първите
CD-ROM устройства са били едноскоростни и затова не се учудвайте на
ограничението на максималната скорост на прехвърлянето на данните (bit stream) в
MPEG –1.То е 150 Кб/сек , което отговаря на 1-ва скорост на CD-ROM.
Искам да отбележа
че възможностите на MPEG-1 не са
ограничени до ниската разделителна способност , която сте виждали на
VIDEO-CD.Във формата е заложена възможност за поддържане на резолюция до 4095х4095 при 60 херца.Ограничението
(Constrained Parameters Bitstream (CPB)) идва от тези 150 Кб/сек ,и всички които
са работели по формата са били
принудени да да използват резолюции , оптимизирани за CPB.Най-разпространени са два такива
формата - SIF 352х240, 30 кадъра в секунда и изрязания формат PAL/SECAM 352х288, 25 кадъра в
секунда.
Принципите на
компресия в MPEG-1
Тука
се спирам на орязания PAL/SECAM по
простата причина че SIF е много по-малко разпространен.Въпросния PAL/SECAM съдържа 352 ppl (point per
line- точки на линия ) , 288 lpf (line per frame-линии на кадър) и 25 fps (frame
per second-кадъра в секунда).За отбелязване е че с изключение на броя на кадрите
, стандартния PAL/SECAM притежава 4 пъти по-добри параметри в сравнение с
орязания , ползван от MPEG-1.Това е причината да се твърди че VIDEO-CD е 4 пъти
по некачествено от обикновеното
видео.
Що се отнася за
дълбочината на цвета , тука не всичко е просто като в компютърната графика ,
където за всеки пиксел се падат определен постоянен брой битове . MPEG-1
използва цветовата схема YСbCr
където У е яркостната плоскост, Сb и Cr – цветовите плоскости.Тези плоскости се
кодират (компресират ) с различна резолюция в няколко варианта:
Вариант на кодиране |
Отношение
на резолюциите Сb/Y (Сr/Y) по хоризонталата |
Отношение
на резолюциите Сb/Y (Сr/Y) по
вертикалата |
4:4:4 |
1:1 |
1:1 |
4:2:2 |
1:2 |
1:1 |
4:2:0 |
1:2 |
1:2 |
4:1:1 |
1:4 |
1:1 |
4:1:0 |
1:4 |
1:4 |
Както виждате от
таблицата , Сb и Cr практически
винаги се кодират с по-малка реолюция от Y. Колкото е по-малка резолюцията
на цветните плоскости толкова е
по-неестествен цвета във филма.Най-малък по размер , но и най-некачествен ще
бъде последния вариант .(Май ще излязат прави продуцентите на “Годзила”:
размерът има значение ; -)
Преди кодирането
се прави анализ на кадрите , определят се кадрите , които ще бъдат ключови и
няма да се променят когато се
кодират , и кадрите , при които част от информацията ще се изреже при
кодирането .Общо се отделят следните кадри:
1.
Кадри
тип I - Intra frame. Ключови кадри , които се компресират без изменение
2.
Кадри
тип P - Predirected frame. При кодирането на тези кадри част от
информацията се изрязва.Когато се възпроизвеждат тези кадри се използва
информация от предния кадър ( I или P )
3.
Кадри
тип В - Bidirectional frame. При кодирането им загубите на информация са
още по-големи .При възпроизвеждането им се ползва вече информация от два
предходни I или P кадъра.В кадрите са именно причината MPEG-1 да има такава
компресия , но и не особено добро качество.
При
кодирането се образува верижка от кадри от различните типове , примерно в
следния ред :
IBBPBBPBBIBBPBBPBB...
Съответно
възпроизвеждането на кадрите по номера ще бъде в следния ред: 1423765...
След разбиването на
кадрите започва процеса по кодирането им .
С I-кадрите процеса на
подготовка се изчерпва с разцепването има на блокове с
размер 8х8 пиксела .
За
сметка на това за кадрите P и B подготовката е доста по-сложна
.За да могат да се свият максимално тези кадри се използва алгоритъм за
предсказване на движение.За входна информация се ползва блок (8х8
пиксела) от текущия
кадър и аналогични блокове от предходните кадри ( I или P ) .На изхода на
алгоритъма имаме следната информация:
1.Вектор на движение на текущия
блок относно предходните
2.разликата между текущия и
предходните , която разлика именно ще се компресира.
Всичката останала
информация се изхвърля . благодарение на което се постига толкова висок
коефициент на компресия , което би било невъзможно без загуби.
Алгоритъма за
предсказване на движения също си има недостатъци.Често във филмите има сцени , в
които движението е незначително или направо липсва, и възникват кадри (или поне блокове) , при които не може
да се ползва алгоритъма и компресирането е пренебрежимо малко, но пък качеството
е добро , понеже в тоя случай P и B кадрите са копия на
І .При сцени с малко движение картината е добра , но за сметка на това
качеството на “бързите” сцени трудно може да се нарече задоволително.
Размерите на
рзличните типове кадрите са в съотношение I:P:B както 15:5:2 .Както виждате ,
намаляването на обема на видоинформацията е налице още на стадий подготовка за
кодиране.
Самото кодиране
протича в 3 стадия :
1.
Discrete
Cosine Transformation - DTC, дискретно преобразование на
косинусите
, преобразование
на Фурие.
2.
Quantization
- квантоване. Превод
на данните от непрекъснат вид в прекъснат
3.
Преобразуване
на получените блокове в последователност , т.е. от матрична в линейна
форма.
При
кодиране на блокове или изчислената разлика между блоковете се ползва
DTC.Обикновено
пикселите в блоковете или самите блокове по някакъв начин са свързани помежду си
– например еднообразен фон , еднакво осветление и т.н.Тази връзка се нарича
корелация.Алгоритъма DTC , използвайки
корелиращи ефекти , преобразува блоковете в честотни компоненти на Фурие.При това част от
информацията се губи заради изравняването на силно отделящите се участъци ,
които не се подчиняват на корелация.
След това влиза в
действие алгоритъма Quantization , който оформя
Quantization matrix.
Quantization matrix – това е матрицата
на квантоване , елементи на която са преобразуваните от непрекъснат в прекъснат
вид данни, т.е. стойностите на амплитудата на компонентите на Фурие.След
формирането на матрицата се разбиват честотните коефициенти на конкретната
стойност . като точността им е фиксирана на 8 бита.
На
финалния стадии много от коефициентите се нулирват и след това матрицата
преминава в линейна форма.
Всички тези
преобразувания касаят само образа.Кодирането на звука става с друг кодек .Към
момента на създаване на MPEG
–1 е имало три кодека -
MPEG-1 Layer I, Layer II и
Layer 3 ( прочутия
МР3).Принципите на кодиране на тези 3 кодека са на основаната на
психоакустически модел , който става все по-съвършен и достигна апогей при
МР3.